#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SLTDataType;

typedef struct SListNode
{
	struct SListNode* next;
	SLTDataType data;
}SLT;

SLT* BuySListNode(SLTDataType x);

void SLPrint(SLT* phead);

void SLPushBack(SLT** pphead, SLTDataType x);

void SLPushFront(SLT** pphead, SLTDataType x);

void SLPopBack(SLT** pphead);

void SLPopFront(SLT** pphead);

SLT* SLFind(SLT* phead, SLTDataType x);

void SLInsert(SLT** pphead, SLT* pos, SLTDataType x);

void SLInsertAfter(SLT* pos, SLTDataType x);

void SLErase(SLT** pphead, SLT* pos);

void SLEraseAfter(SLT* pos);

void SLDestroy(SLT** pphead);